import time
import unittest

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service


class MyTestCaseFireFox(unittest.TestCase):
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        # 注册 驱动打开的位置
        service = Service(executable_path="../../dirver_exe/geckodriver.exe")
        # 打开浏览器  driver 代表 浏览器对象
        cls.driver = webdriver.Firefox(service=service)

    def test_window_handle(self):
        """测试浏览器中句柄的问题"""

        self.driver.get("http://192.168.0.152:8080/testhtml/exam/index.html")

        self.driver.find_element(By.TAG_NAME, "a").click()
        # 将网页中的  a标签的 跳转方式设置为在新标签页中打开
        """
            如果 想要操作的 元素 在新的标签页中打开，我们也需要 切换句柄 到新标签页中 才能 操作新标签页中的 元素
        """
        # 在进行 切换标签页时 ，首先要 获得网页中的 一共有几个标签页
        window_handles = self.driver.window_handles
        print(window_handles)
        self.driver.switch_to.window(window_handles[1])
        time.sleep(5)  # 固定时间（强制等待）
        self.driver.find_element(By.NAME, "c4").click()

    @classmethod
    def tearDownClass(cls) -> None:
        cls.driver.close()  # 只会关闭一个标签页
        # cls.driver.quit()  # 直接退出浏览器 并且关闭所有的标签页


if __name__ == '__main__':
    unittest.main()
